#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include "qjsonarray.h"
#include "qjsondocument.h"
#include "qjsonobject.h"
#include "qjsonvalue.h"
#include "qnode_new.hpp"
#include <QMainWindow>
QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACE

class MainWindow : public QMainWindow {
    Q_OBJECT

public:
    MainWindow( int argc, char** argv, QWidget* parent = nullptr );
    ~MainWindow();

private slots:
    void on_force_slow_clicked();

    void on_can_initial_pose_clicked();

    void on_reflective_localization_enable_clicked();

    void on_reflective_localization_reset_clicked();

    QByteArray commonServiceJson( QString name, const QJsonObject& json );
    QByteArray commonServiceJsons( QString name, const QJsonArray& jsons );

    void commonServiceBack( QString name, const QByteArray& qbyteArray, QJsonObject& qobj );

    void on_initialpose_clicked();

    void on_startinitpose_clicked();

    void on_navgoal_clicked();

    void on_pushButton_clicked();

    void on_pushButton_2_clicked();

private:
    Ui::MainWindow*      ui;
    qnode_new::QNodeNew* qnode_module = nullptr;
    int                  argc;
    char**               argv;
};
#endif  // MAINWINDOW_H
